package 基础语法;

public class 位运算 {

    public static void main(String[] args) {
        //以8位示例，int 32位太长，不好举例
        byte a = 1;// 0 000 0001
        byte b = -1;// 1 111 1111
        // 按位与
        System.out.println(a & b);// 0 000 0001=>1

        // 按位或
        System.out.println(a | b);// 1 111 1111=>-1

        // 左移，低位补0

        System.out.println(a << 2);// 0 000 0100=>4,左移1位相当于乘2，2位相当于乘4
        System.out.println(b << 2);// 1 111 1100=>-4

        // 右移，整数高位补0，复数高位补1

        a = 4;// 0 000 0100
        b = -4;// 1 111 1100

        System.out.println(a >> 2);// 0 000 0001=>1,右移1位相当于除2，2位相当于除4
        System.out.println(b >> 2);// 1 111 1111=>-1

    }
}